package Modelo;

import java.util.Collection;
import java.util.Iterator;


public class Congelamiento implements Habilidad {

	/**
	 * El ejecutor mata al pooglin y lo transforma en hielo
	 * @param ejecutor
	 */
	
	public void ejecutarSobre(PoseedorDeHabilidad ejecutor) {
		Mapa mapa=ejecutor.getMapa();
		Bloque actual=mapa.getBloqueDondeEsta(ejecutor);
		Collection<Personaje> aMatar= actual.getAlojados();
		Iterator<Personaje> it= aMatar.iterator();
		while(it.hasNext())
			it.next().morir();		
		actual.desalojar(ejecutor);		
		mapa.ModificarBloquePor(actual, new Hielo(mapa));	
	}

	/**
	 * Indica si se puede congelar 
	 * @param ejecutor
	 * @return boolean
	 */
	
	public boolean esEjecutableSobre(PoseedorDeHabilidad ejecutor) {
		if(ejecutor.getSentidoVertical()==Constantes.reposo)
			return true;
		return false;
	}

	/**
	 * Tiempo que tarda la habilidad en ejecutarse
	 * @param ejecutor
	 * @return long
	 */
	
	public long tiempoDeEjecucion(PoseedorDeHabilidad ejecutor) {
		return Constantes.tiempoCiclo;
	}

}
